home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / ImageCompression.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  36.2 KB  |  811 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        ImageCompression.mod
  3.  
  4.      Contains:    QuickTime Image Compression Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.0
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE ImageCompression;
  23.  
  24. IMPORT SYSTEM, Types, Quickdraw, QDOffscreen, Components, Dialogs, StandardFile;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. TYPE
  31.     MatrixRecord* = RECORD
  32.         matrix*:                    ARRAY 3,3 (*ΔΔ[0..2,0..2]ΔΔ*) OF Types.Fixed;
  33.     END;
  34.  
  35.     MatrixRecordPtr* = POINTER TO MatrixRecord;
  36.  
  37.     FixedPoint* = RECORD
  38.         x*:                        Types.Fixed;
  39.         y*:                        Types.Fixed;
  40.     END;
  41.  
  42.     FixedRect* = RECORD
  43.         left*:                    Types.Fixed;
  44.         top*:                    Types.Fixed;
  45.         right*:                    Types.Fixed;
  46.         bottom*:                    Types.Fixed;
  47.     END;
  48.  
  49. (* These are the bits that are set in the Components.Component flags, and also in the codecInfo struct. *)
  50.  
  51. CONST
  52.     codecInfoDoes1*                = ASH(1,0);
  53.     codecInfoDoes2*                = ASH(1,1);
  54.     codecInfoDoes4*                = ASH(1,2);
  55.     codecInfoDoes8*                = ASH(1,3);
  56.     codecInfoDoes16*                = ASH(1,4);
  57.     codecInfoDoes32*                = ASH(1,5);
  58.     codecInfoDoesDither*            = ASH(1,6);
  59.     codecInfoDoesStretch*        = ASH(1,7);
  60.     codecInfoDoesShrink*            = ASH(1,8);
  61.     codecInfoDoesMask*            = ASH(1,9);
  62.     codecInfoDoesTemporal*        = ASH(1,10);
  63.     codecInfoDoesDouble*            = ASH(1,11);
  64.     codecInfoDoesQuad*            = ASH(1,12);
  65.     codecInfoDoesHalf*            = ASH(1,13);
  66.     codecInfoDoesQuarter*        = ASH(1,14);
  67.     codecInfoDoesRotate*            = ASH(1,15);
  68.     codecInfoDoesHorizFlip*        = ASH(1,16);
  69.     codecInfoDoesVertFlip*        = ASH(1,17);
  70.     codecInfoDoesSkew*            = ASH(1,18);
  71.     codecInfoDoesBlend*            = ASH(1,19);
  72.     codecInfoDoesWarp*            = ASH(1,20);
  73.     codecInfoDoesRecompress*        = ASH(1,21);
  74.     codecInfoDoesSpool*            = ASH(1,22);
  75.     codecInfoDoesRateConstrain*    = ASH(1,23);
  76.  
  77.     codecInfoDepth1*                = ASH(1,0);
  78.     codecInfoDepth2*                = ASH(1,1);
  79.     codecInfoDepth4*                = ASH(1,2);
  80.     codecInfoDepth8*                = ASH(1,3);
  81.     codecInfoDepth16*            = ASH(1,4);
  82.     codecInfoDepth32*            = ASH(1,5);
  83.     codecInfoDepth24*            = ASH(1,6);
  84.     codecInfoDepth33*            = ASH(1,7);
  85.     codecInfoDepth34*            = ASH(1,8);
  86.     codecInfoDepth36*            = ASH(1,9);
  87.     codecInfoDepth40*            = ASH(1,10);
  88.     codecInfoStoresClut*            = ASH(1,11);
  89.     codecInfoDoesLossless*        = ASH(1,12);
  90.     codecInfoSequenceSensitive*    = ASH(1,13);
  91.  
  92.     codecFlagUseImageBuffer*        = ASH(1,0);
  93.     codecFlagUseScreenBuffer*    = ASH(1,1);
  94.     codecFlagUpdatePrevious*        = ASH(1,2);
  95.     codecFlagNoScreenUpdate*        = ASH(1,3);
  96.     codecFlagWasCompressed*        = ASH(1,4);
  97.     codecFlagDontOffscreen*        = ASH(1,5);
  98.     codecFlagUpdatePreviousComp*    = ASH(1,6);
  99.     codecFlagForceKeyFrame*        = ASH(1,7);
  100.     codecFlagOnlyScreenUpdate*    = ASH(1,8);
  101.     codecFlagLiveGrab*            = ASH(1,9);
  102.     codecFlagDontUseNewImageBuffer* = ASH(1,10);
  103.     codecFlagInterlaceUpdate*    = ASH(1,11);
  104.     codecFlagCatchUpDiff*        = ASH(1,12);
  105.     codecFlagUsedNewImageBuffer*    = ASH(1,14);
  106.     codecFlagUsedImageBuffer*    = ASH(1,15);
  107.  
  108. (* The minimum data size for spooling in or out data *)
  109.     codecMinimumDataSize*        = 32768;
  110.  
  111.     compressorComponentType*        = LONG("imco");                        (* the type for "Components" which compress images *)
  112.     decompressorComponentType*    = LONG("imdc");
  113.  
  114.     
  115. TYPE
  116.     CompressorComponent* = Components.Component;
  117.  
  118.     DecompressorComponent* = Components.Component;
  119.  
  120.     CodecComponent* = Components.Component;
  121.  
  122.  
  123. CONST
  124.     anyCodec*                    = 0;                            (* take first working codec of given type *)
  125.     bestSpeedCodec*                = -1;                            (* take fastest codec of given type *)
  126.     bestFidelityCodec*            = -2;                            (* take codec which is most accurate *)
  127.     bestCompressionCodec*        = -3;                            (* take codec of given type that is most accurate *)
  128.  
  129.     
  130. TYPE
  131.     CodecType* = LONGINT;
  132.  
  133.     CodecFlags* = INTEGER;
  134.  
  135.     CodecQ* = LONGINT;
  136.  
  137.  
  138. CONST
  139.     codecLosslessQuality*        = $400;
  140.     codecMaxQuality*                = $3ff;
  141.     codecMinQuality*                = $000;
  142.     codecLowQuality*                = $100;
  143.     codecNormalQuality*            = $200;
  144.     codecHighQuality*            = $300;
  145.  
  146.     codecCompletionSource*        = ASH(1,0);                (* asynchronous codec is done with source data *)
  147.     codecCompletionDest*            = ASH(1,1);                (* asynchronous codec is done with destination data *)
  148.  
  149.     codecProgressOpen*            = 0;
  150.     codecProgressUpdatePercent*    = 1;
  151.     codecProgressClose*            = 2;
  152.  
  153. TYPE
  154.     ICMDataProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR dataP: Types.Ptr; bytesNeeded: LONGINT; refcon: LONGINT): Types.OSErr;
  155.     ICMFlushProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (data: Types.Ptr; bytesAdded: LONGINT; refcon: LONGINT): Types.OSErr;
  156.     ICMCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (result: Types.OSErr; flags: INTEGER; refcon: LONGINT);
  157.     ICMProgressProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (message: INTEGER; completeness: Types.Fixed; refcon: LONGINT): Types.OSErr;
  158.     StdPixProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR src: Quickdraw.PixMap; VAR srcRect: Types.Rect; VAR matrix: MatrixRecord; mode: INTEGER; mask: Quickdraw.RgnHandle; VAR matte: Quickdraw.PixMap; VAR matteRect: Types.Rect; flags: INTEGER);
  159.     ICMAlignmentProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR rp: Types.Rect; refcon: LONGINT);
  160.     ICMDataUPP* = Types.UniversalProcPtr;
  161.     ICMFlushUPP* = Types.UniversalProcPtr;
  162.     ICMCompletionUPP* = Types.UniversalProcPtr;
  163.     ICMProgressUPP* = Types.UniversalProcPtr;
  164.     StdPixUPP* = Types.UniversalProcPtr;
  165.     ICMAlignmentUPP* = Types.UniversalProcPtr;
  166.  
  167.     ImageSequence* = LONGINT;
  168.  
  169.     ICMProgressProcRecord* = RECORD
  170.         progressProc*:            ICMProgressUPP;
  171.         progressRefCon*:            LONGINT;
  172.     END;
  173.  
  174.     ICMProgressProcRecordPtr* = POINTER TO ICMProgressProcRecord;
  175.  
  176.     ICMCompletionProcRecord* = RECORD
  177.         completionProc*:            ICMCompletionUPP;
  178.         completionRefCon*:        LONGINT;
  179.     END;
  180.  
  181.     ICMCompletionProcRecordPtr* = POINTER TO ICMCompletionProcRecord;
  182.  
  183.     ICMDataProcRecord* = RECORD
  184.         dataProc*:                ICMDataUPP;
  185.         dataRefCon*:                LONGINT;
  186.     END;
  187.  
  188.     ICMDataProcRecordPtr* = POINTER TO ICMDataProcRecord;
  189.  
  190.     ICMFlushProcRecord* = RECORD
  191.         flushProc*:                ICMFlushUPP;
  192.         flushRefCon*:            LONGINT;
  193.     END;
  194.  
  195.     ICMFlushProcRecordPtr* = POINTER TO ICMFlushProcRecord;
  196.  
  197.     ICMAlignmentProcRecord* = RECORD
  198.         alignmentProc*:            ICMAlignmentUPP;
  199.         alignmentRefCon*:        LONGINT;
  200.     END;
  201.  
  202.     ICMAlignmentProcRecordPtr* = POINTER TO ICMAlignmentProcRecord;
  203.  
  204.     DataRateParams* = RECORD
  205.         dataRate*:                LONGINT;
  206.         dataOverrun*:            LONGINT;
  207.         frameDuration*:            LONGINT;
  208.         keyFrameRate*:            LONGINT;
  209.         minSpatialQuality*:        CodecQ;
  210.         minTemporalQuality*:        CodecQ;
  211.     END;
  212.  
  213.     DataRateParamsPtr* = POINTER TO DataRateParams;
  214.  
  215.     ImageDescription* = (*ΔΔPACKEDΔΔ*) RECORD
  216.         idSize*:                    LONGINT;                                (* total size of ImageDescription including extra data ( CLUTs and other per sequence data *)
  217.         cType*:                    CodecType;                                (* what kind of codec compressed this data *)
  218.         resvd1*:                    LONGINT;                                (* reserved for Apple use *)
  219.         resvd2*:                    INTEGER;                                (* reserved for Apple use *)
  220.         dataRefIndex*:            INTEGER;                                (* set to zero  *)
  221.         version*:                INTEGER;                                (* which version is this data *)
  222.         revisionLevel*:            INTEGER;                                (* what version of that codec did this *)
  223.         vendor*:                    LONGINT;                                (* whose  codec compressed this data *)
  224.         temporalQuality*:        CodecQ;                                    (* what was the temporal quality factor  *)
  225.         spatialQuality*:            CodecQ;                                    (* what was the spatial quality factor *)
  226.         width*:                    INTEGER;                                (* how many pixels wide is this data *)
  227.         height*:                    INTEGER;                                (* how many pixels high is this data *)
  228.         hRes*:                    Types.Fixed;                                    (* horizontal resolution *)
  229.         vRes*:                    Types.Fixed;                                    (* vertical resolution *)
  230.         dataSize*:                LONGINT;                                (* if known, the size of data for this image descriptor *)
  231.         frameCount*:                INTEGER;                                (* number of frames this description applies to *)
  232.         name*:                    Types.Str31;                                    (* name of codec ( in case not installed )  *)
  233.         depth*:                    INTEGER;                                (* what depth is this data (1-32) or ( 33-40 grayscale ) *)
  234.         clutID*:                    INTEGER;                                (* clut id or if 0 clut follows  or -1 if no clut *)
  235.     END;
  236.  
  237.     ImageDescriptionPtr* = POINTER TO ImageDescription;
  238.     ImageDescriptionHandle* = HANDLE TO ImageDescription (*ΔΔ POINTER TO ImageDescriptionPtr*);
  239.  
  240.     CodecInfo* = (*ΔΔPACKEDΔΔ*) RECORD
  241.         typeName*:                Types.Str31;                                    (* name of the codec type i.e.: 'Apple Image Compression' *)
  242.         version*:                INTEGER;                                (* version of the codec data that this codec knows about *)
  243.         revisionLevel*:            INTEGER;                                (* revision level of this codec i.e: 0x00010001 (1.0.1) *)
  244.         vendor*:                    LONGINT;                                (* Maker of this codec i.e: LONG("appl") *)
  245.         decompressFlags*:        LONGINT;                                (* codecInfo flags for decompression capabilities *)
  246.         compressFlags*:            LONGINT;                                (* codecInfo flags for compression capabilities *)
  247.         formatFlags*:            LONGINT;                                (* codecInfo flags for compression format details *)
  248.         compressionAccuracy*:    Types.UInt8;                                    (* measure (1-255) of accuracy of this codec for compress (0 if unknown) *)
  249.         decompressionAccuracy*:    Types.UInt8;                                    (* measure (1-255) of accuracy of this codec for decompress (0 if unknown) *)
  250.         compressionSpeed*:        INTEGER;                                (* ( millisecs for compressing 320x240 on base mac II) (0 if unknown)  *)
  251.         decompressionSpeed*:        INTEGER;                                (* ( millisecs for decompressing 320x240 on mac II)(0 if unknown)  *)
  252.         compressionLevel*:        Types.UInt8;                                    (* measure (1-255) of compression level of this codec (0 if unknown)  *)
  253.         resvd*:                    Types.UInt8;                                    (* pad *)
  254.         minimumHeight*:            INTEGER;                                (* minimum height of image (block size) *)
  255.         minimumWidth*:            INTEGER;                                (* minimum width of image (block size) *)
  256.         decompressPipelineLatency*: INTEGER;                                (* in milliseconds ( for asynchronous codecs ) *)
  257.         compressPipelineLatency*: INTEGER;                                (* in milliseconds ( for asynchronous codecs ) *)
  258.         privateData*:            LONGINT;
  259.     END;
  260.  
  261.     CodecNameSpec* = RECORD
  262.         codec*:                    CodecComponent;
  263.         cType*:                    CodecType;
  264.         typeName*:                Types.Str31;
  265.         name*:                    Types.Handle;
  266.     END;
  267.  
  268.     CodecNameSpecList* = RECORD
  269.         count*:                    INTEGER;
  270.         list*:                    ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CodecNameSpec;
  271.     END;
  272.  
  273.     CodecNameSpecListPtr* = POINTER TO CodecNameSpecList;
  274.  
  275.  
  276. CONST
  277.     defaultDither*                = 0;
  278.     forceDither*                    = 1;
  279.     suppressDither*                = 2;
  280.     useColorMatching*            = 4;
  281.  
  282.  
  283. TYPE
  284.     ICMFrameTimeRecord* = RECORD
  285.         value*:                    Types.wide;                                    (* frame time*)
  286.         scale*:                    LONGINT;                                (* timescale of value/duration fields*)
  287.         base*:                    Types.Ptr;                                    (* timebase*)
  288.         duration*:                LONGINT;                                (* duration frame is to be displayed (0 if unknown)*)
  289.         rate*:                    Types.Fixed;                                    (* rate of timebase relative to wall-time*)
  290.     END;
  291.  
  292.     ICMFrameTimePtr* = POINTER TO ICMFrameTimeRecord;
  293.  
  294.  
  295. CONST
  296.     uppICMDataProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  297.     uppICMFlushProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  298.     uppICMCompletionProcInfo* = $00000E80; (* PROCEDURE (2 byte param, 2 byte param, 4 byte param); *)
  299.     uppICMProgressProcInfo* = $00000FA0; (* PROCEDURE (2 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  300.     uppStdPixProcInfo* = $002FEFC0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param, 2 byte param); *)
  301.     uppICMAlignmentProcInfo* = $000003C0; (* PROCEDURE (4 byte param, 4 byte param); *)
  302.  
  303. PROCEDURE NewICMDataProc*(userRoutine: ICMDataProcPtr): ICMDataUPP;
  304.     (*$IF NOT GENERATINGCFM *)
  305.     INLINE PASCAL $2E9F;
  306.     (*$END*)
  307.  
  308. PROCEDURE NewICMFlushProc*(userRoutine: ICMFlushProcPtr): ICMFlushUPP;
  309.     (*$IF NOT GENERATINGCFM *)
  310.     INLINE PASCAL $2E9F;
  311.     (*$END*)
  312.  
  313. PROCEDURE NewICMCompletionProc*(userRoutine: ICMCompletionProcPtr): ICMCompletionUPP;
  314.     (*$IF NOT GENERATINGCFM *)
  315.     INLINE PASCAL $2E9F;
  316.     (*$END*)
  317.  
  318. PROCEDURE NewICMProgressProc*(userRoutine: ICMProgressProcPtr): ICMProgressUPP;
  319.     (*$IF NOT GENERATINGCFM *)
  320.     INLINE PASCAL $2E9F;
  321.     (*$END*)
  322.  
  323. PROCEDURE NewStdPixProc*(userRoutine: StdPixProcPtr): StdPixUPP;
  324.     (*$IF NOT GENERATINGCFM *)
  325.     INLINE PASCAL $2E9F;
  326.     (*$END*)
  327.  
  328. PROCEDURE NewICMAlignmentProc*(userRoutine: ICMAlignmentProcPtr): ICMAlignmentUPP;
  329.     (*$IF NOT GENERATINGCFM *)
  330.     INLINE PASCAL $2E9F;
  331.     (*$END*)
  332.  
  333. PROCEDURE CallICMDataProc*(VAR dataP: Types.Ptr; bytesNeeded: LONGINT; refcon: LONGINT; userRoutine: ICMDataUPP): Types.OSErr;
  334.     (*$IF NOT GENERATINGCFM*)
  335.     INLINE PASCAL $205F, $4E90;
  336.     (*$END*)
  337.  
  338. PROCEDURE CallICMFlushProc*(data: Types.Ptr; bytesAdded: LONGINT; refcon: LONGINT; userRoutine: ICMFlushUPP): Types.OSErr;
  339.     (*$IF NOT GENERATINGCFM*)
  340.     INLINE PASCAL $205F, $4E90;
  341.     (*$END*)
  342.  
  343. PROCEDURE CallICMCompletionProc*(result: Types.OSErr; flags: INTEGER; refcon: LONGINT; userRoutine: ICMCompletionUPP);
  344.     (*$IF NOT GENERATINGCFM*)
  345.     INLINE PASCAL $205F, $4E90;
  346.     (*$END*)
  347.  
  348. PROCEDURE CallICMProgressProc*(message: INTEGER; completeness: Types.Fixed; refcon: LONGINT; userRoutine: ICMProgressUPP): Types.OSErr;
  349.     (*$IF NOT GENERATINGCFM*)
  350.     INLINE PASCAL $205F, $4E90;
  351.     (*$END*)
  352.  
  353. PROCEDURE CallStdPixProc*(VAR src: Quickdraw.PixMap; VAR srcRect: Types.Rect; VAR matrix: MatrixRecord; mode: INTEGER; mask: Quickdraw.RgnHandle; VAR matte: Quickdraw.PixMap; VAR matteRect: Types.Rect; flags: INTEGER; userRoutine: StdPixUPP);
  354.     (*$IF NOT GENERATINGCFM*)
  355.     INLINE PASCAL $205F, $4E90;
  356.     (*$END*)
  357.  
  358. PROCEDURE CallICMAlignmentProc*(VAR rp: Types.Rect; refcon: LONGINT; userRoutine: ICMAlignmentUPP);
  359.     (*$IF NOT GENERATINGCFM*)
  360.     INLINE PASCAL $205F, $4E90;
  361.     (*$END*)
  362.  
  363. PROCEDURE CodecManagerVersion*(VAR version: LONGINT): Types.OSErr;
  364.     (*$IF NOT GENERATINGCFM*)
  365.     INLINE PASCAL $7000, $AAA3;
  366.     (*$END*)
  367. PROCEDURE GetCodecNameList*(VAR list: CodecNameSpecListPtr; showAll: INTEGER): Types.OSErr;
  368.     (*$IF NOT GENERATINGCFM*)
  369.     INLINE PASCAL $7001, $AAA3;
  370.     (*$END*)
  371. PROCEDURE DisposeCodecNameList*(list: CodecNameSpecListPtr): Types.OSErr;
  372.     (*$IF NOT GENERATINGCFM*)
  373.     INLINE PASCAL $700F, $AAA3;
  374.     (*$END*)
  375. PROCEDURE GetCodecInfo*(VAR info: CodecInfo; cType: CodecType; codec: CodecComponent): Types.OSErr;
  376.     (*$IF NOT GENERATINGCFM*)
  377.     INLINE PASCAL $7003, $AAA3;
  378.     (*$END*)
  379. PROCEDURE GetMaxCompressionSize*(src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; colorDepth: INTEGER; quality: CodecQ; cType: CodecType; codec: CompressorComponent; VAR size: LONGINT): Types.OSErr;
  380.     (*$IF NOT GENERATINGCFM*)
  381.     INLINE PASCAL $7004, $AAA3;
  382.     (*$END*)
  383. PROCEDURE GetCompressionTime*(src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; colorDepth: INTEGER; cType: CodecType; codec: CompressorComponent; VAR spatialQuality: CodecQ; VAR temporalQuality: CodecQ; VAR compressTime: LONGINT): Types.OSErr;
  384.     (*$IF NOT GENERATINGCFM*)
  385.     INLINE PASCAL $7005, $AAA3;
  386.     (*$END*)
  387. PROCEDURE CompressImage*(src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; quality: CodecQ; cType: CodecType; desc: ImageDescriptionHandle; data: Types.Ptr): Types.OSErr;
  388.     (*$IF NOT GENERATINGCFM*)
  389.     INLINE PASCAL $7006, $AAA3;
  390.     (*$END*)
  391. PROCEDURE FCompressImage*(src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; colorDepth: INTEGER; quality: CodecQ; cType: CodecType; codec: CompressorComponent; clut: Quickdraw.CTabHandle; flags: CodecFlags; bufferSize: LONGINT; flushProc: ICMFlushProcRecordPtr; progressProc: ICMProgressProcRecordPtr; desc: ImageDescriptionHandle; data: Types.Ptr): Types.OSErr;
  392.     (*$IF NOT GENERATINGCFM*)
  393.     INLINE PASCAL $7007, $AAA3;
  394.     (*$END*)
  395. PROCEDURE DecompressImage*(data: Types.Ptr; desc: ImageDescriptionHandle; dst: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; (*CONST*)VAR dstRect: Types.Rect; mode: INTEGER; mask: Quickdraw.RgnHandle): Types.OSErr;
  396.     (*$IF NOT GENERATINGCFM*)
  397.     INLINE PASCAL $7008, $AAA3;
  398.     (*$END*)
  399. PROCEDURE FDecompressImage*(data: Types.Ptr; desc: ImageDescriptionHandle; dst: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: Quickdraw.RgnHandle; matte: Quickdraw.PixMapHandle; (*CONST*)VAR matteRect: Types.Rect; accuracy: CodecQ; codec: DecompressorComponent; bufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  400.     (*$IF NOT GENERATINGCFM*)
  401.     INLINE PASCAL $7009, $AAA3;
  402.     (*$END*)
  403. PROCEDURE CompressSequenceBegin*(VAR seqID: ImageSequence; src: Quickdraw.PixMapHandle; prev: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; (*CONST*)VAR prevRect: Types.Rect; colorDepth: INTEGER; cType: CodecType; codec: CompressorComponent; spatialQuality: CodecQ; temporalQuality: CodecQ; keyFrameRate: LONGINT; clut: Quickdraw.CTabHandle; flags: CodecFlags; desc: ImageDescriptionHandle): Types.OSErr;
  404.     (*$IF NOT GENERATINGCFM*)
  405.     INLINE PASCAL $700A, $AAA3;
  406.     (*$END*)
  407. PROCEDURE CompressSequenceFrame*(seqID: ImageSequence; src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; flags: CodecFlags; data: Types.Ptr; VAR dataSize: LONGINT; VAR similarity: Types.UInt8; asyncCompletionProc: ICMCompletionProcRecordPtr): Types.OSErr;
  408.     (*$IF NOT GENERATINGCFM*)
  409.     INLINE PASCAL $700B, $AAA3;
  410.     (*$END*)
  411. PROCEDURE DecompressSequenceBegin*(VAR seqID: ImageSequence; desc: ImageDescriptionHandle; port: Quickdraw.CGrafPtr; gdh: Quickdraw.GDHandle; (*CONST*)VAR srcRect: Types.Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: Quickdraw.RgnHandle; flags: CodecFlags; accuracy: CodecQ; codec: DecompressorComponent): Types.OSErr;
  412.     (*$IF NOT GENERATINGCFM*)
  413.     INLINE PASCAL $700D, $AAA3;
  414.     (*$END*)
  415. PROCEDURE DecompressSequenceBeginS*(VAR seqID: ImageSequence; desc: ImageDescriptionHandle; data: Types.Ptr; dataSize: LONGINT; port: Quickdraw.CGrafPtr; gdh: Quickdraw.GDHandle; (*CONST*)VAR srcRect: Types.Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: Quickdraw.RgnHandle; flags: CodecFlags; accuracy: CodecQ; codec: DecompressorComponent): Types.OSErr;
  416.     (*$IF NOT GENERATINGCFM*)
  417.     INLINE PASCAL $203C, $30, $5D, $AAA3;
  418.     (*$END*)
  419. PROCEDURE DecompressSequenceFrame*(seqID: ImageSequence; data: Types.Ptr; inFlags: CodecFlags; VAR outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr): Types.OSErr;
  420.     (*$IF NOT GENERATINGCFM*)
  421.     INLINE PASCAL $700E, $AAA3;
  422.     (*$END*)
  423. PROCEDURE DecompressSequenceFrameS*(seqID: ImageSequence; data: Types.Ptr; dataSize: LONGINT; inFlags: CodecFlags; VAR outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr): Types.OSErr;
  424.     (*$IF NOT GENERATINGCFM*)
  425.     INLINE PASCAL $203C, $16, $47, $AAA3;
  426.     (*$END*)
  427. PROCEDURE DecompressSequenceFrameWhen*(seqID: ImageSequence; data: Types.Ptr; dataSize: LONGINT; inFlags: CodecFlags; VAR outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr; (*CONST*)VAR frameTime: ICMFrameTimeRecord): Types.OSErr;
  428.     (*$IF NOT GENERATINGCFM*)
  429.     INLINE PASCAL $203C, $1A, $5E, $AAA3;
  430.     (*$END*)
  431. PROCEDURE CDSequenceFlush*(seqID: ImageSequence): Types.OSErr;
  432.     (*$IF NOT GENERATINGCFM*)
  433.     INLINE PASCAL $203C, $4, $5F, $AAA3;
  434.     (*$END*)
  435. PROCEDURE SetDSequenceMatrix*(seqID: ImageSequence; matrix: MatrixRecordPtr): Types.OSErr;
  436.     (*$IF NOT GENERATINGCFM*)
  437.     INLINE PASCAL $7010, $AAA3;
  438.     (*$END*)
  439. PROCEDURE SetDSequenceMatte*(seqID: ImageSequence; matte: Quickdraw.PixMapHandle; (*CONST*)VAR matteRect: Types.Rect): Types.OSErr;
  440.     (*$IF NOT GENERATINGCFM*)
  441.     INLINE PASCAL $7011, $AAA3;
  442.     (*$END*)
  443. PROCEDURE SetDSequenceMask*(seqID: ImageSequence; mask: Quickdraw.RgnHandle): Types.OSErr;
  444.     (*$IF NOT GENERATINGCFM*)
  445.     INLINE PASCAL $7012, $AAA3;
  446.     (*$END*)
  447. PROCEDURE SetDSequenceTransferMode*(seqID: ImageSequence; mode: INTEGER; (*CONST*)VAR opColor: Quickdraw.RGBColor): Types.OSErr;
  448.     (*$IF NOT GENERATINGCFM*)
  449.     INLINE PASCAL $7013, $AAA3;
  450.     (*$END*)
  451. PROCEDURE SetDSequenceDataProc*(seqID: ImageSequence; dataProc: ICMDataProcRecordPtr; bufferSize: LONGINT): Types.OSErr;
  452.     (*$IF NOT GENERATINGCFM*)
  453.     INLINE PASCAL $7014, $AAA3;
  454.     (*$END*)
  455. PROCEDURE SetDSequenceAccuracy*(seqID: ImageSequence; accuracy: CodecQ): Types.OSErr;
  456.     (*$IF NOT GENERATINGCFM*)
  457.     INLINE PASCAL $7034, $AAA3;
  458.     (*$END*)
  459. PROCEDURE SetDSequenceSrcRect*(seqID: ImageSequence; (*CONST*)VAR srcRect: Types.Rect): Types.OSErr;
  460.     (*$IF NOT GENERATINGCFM*)
  461.     INLINE PASCAL $7035, $AAA3;
  462.     (*$END*)
  463. PROCEDURE GetDSequenceImageBuffer*(seqID: ImageSequence; VAR gworld: QDOffscreen.GWorldPtr): Types.OSErr;
  464.     (*$IF NOT GENERATINGCFM*)
  465.     INLINE PASCAL $7015, $AAA3;
  466.     (*$END*)
  467. PROCEDURE GetDSequenceScreenBuffer*(seqID: ImageSequence; VAR gworld: QDOffscreen.GWorldPtr): Types.OSErr;
  468.     (*$IF NOT GENERATINGCFM*)
  469.     INLINE PASCAL $7016, $AAA3;
  470.     (*$END*)
  471. PROCEDURE SetCSequenceQuality*(seqID: ImageSequence; spatialQuality: CodecQ; temporalQuality: CodecQ): Types.OSErr;
  472.     (*$IF NOT GENERATINGCFM*)
  473.     INLINE PASCAL $7017, $AAA3;
  474.     (*$END*)
  475. PROCEDURE SetCSequencePrev*(seqID: ImageSequence; prev: Quickdraw.PixMapHandle; (*CONST*)VAR prevRect: Types.Rect): Types.OSErr;
  476.     (*$IF NOT GENERATINGCFM*)
  477.     INLINE PASCAL $7018, $AAA3;
  478.     (*$END*)
  479. PROCEDURE SetCSequenceFlushProc*(seqID: ImageSequence; flushProc: ICMFlushProcRecordPtr; bufferSize: LONGINT): Types.OSErr;
  480.     (*$IF NOT GENERATINGCFM*)
  481.     INLINE PASCAL $7033, $AAA3;
  482.     (*$END*)
  483. PROCEDURE SetCSequenceKeyFrameRate*(seqID: ImageSequence; keyframerate: LONGINT): Types.OSErr;
  484.     (*$IF NOT GENERATINGCFM*)
  485.     INLINE PASCAL $7036, $AAA3;
  486.     (*$END*)
  487. PROCEDURE GetCSequenceKeyFrameRate*(seqID: ImageSequence; VAR keyframerate: LONGINT): Types.OSErr;
  488.     (*$IF NOT GENERATINGCFM*)
  489.     INLINE PASCAL $203C, $8, $4B, $AAA3;
  490.     (*$END*)
  491. PROCEDURE GetCSequencePrevBuffer*(seqID: ImageSequence; VAR gworld: QDOffscreen.GWorldPtr): Types.OSErr;
  492.     (*$IF NOT GENERATINGCFM*)
  493.     INLINE PASCAL $7019, $AAA3;
  494.     (*$END*)
  495. PROCEDURE CDSequenceBusy*(seqID: ImageSequence): Types.OSErr;
  496.     (*$IF NOT GENERATINGCFM*)
  497.     INLINE PASCAL $701A, $AAA3;
  498.     (*$END*)
  499. PROCEDURE CDSequenceEnd*(seqID: ImageSequence): Types.OSErr;
  500.     (*$IF NOT GENERATINGCFM*)
  501.     INLINE PASCAL $701B, $AAA3;
  502.     (*$END*)
  503. PROCEDURE GetCompressedImageSize*(desc: ImageDescriptionHandle; data: Types.Ptr; bufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; VAR dataSize: LONGINT): Types.OSErr;
  504.     (*$IF NOT GENERATINGCFM*)
  505.     INLINE PASCAL $701C, $AAA3;
  506.     (*$END*)
  507. PROCEDURE GetSimilarity*(src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; desc: ImageDescriptionHandle; data: Types.Ptr; VAR similarity: Types.Fixed): Types.OSErr;
  508.     (*$IF NOT GENERATINGCFM*)
  509.     INLINE PASCAL $701D, $AAA3;
  510.     (*$END*)
  511. PROCEDURE GetImageDescriptionCTable*(desc: ImageDescriptionHandle; VAR ctable: Quickdraw.CTabHandle): Types.OSErr;
  512.     (*$IF NOT GENERATINGCFM*)
  513.     INLINE PASCAL $701E, $AAA3;
  514.     (*$END*)
  515. PROCEDURE SetImageDescriptionCTable*(desc: ImageDescriptionHandle; ctable: Quickdraw.CTabHandle): Types.OSErr;
  516.     (*$IF NOT GENERATINGCFM*)
  517.     INLINE PASCAL $701F, $AAA3;
  518.     (*$END*)
  519. PROCEDURE GetImageDescriptionExtension*(desc: ImageDescriptionHandle; VAR extension: Types.Handle; idType: LONGINT; index: LONGINT): Types.OSErr;
  520.     (*$IF NOT GENERATINGCFM*)
  521.     INLINE PASCAL $7020, $AAA3;
  522.     (*$END*)
  523. PROCEDURE SetImageDescriptionExtension*(desc: ImageDescriptionHandle; extension: Types.Handle; idType: LONGINT): Types.OSErr;
  524.     (*$IF NOT GENERATINGCFM*)
  525.     INLINE PASCAL $7021, $AAA3;
  526.     (*$END*)
  527. PROCEDURE RemoveImageDescriptionExtension*(VAR desc: ImageDescription; idType: LONGINT; index: LONGINT): Types.OSErr;
  528.     (*$IF NOT GENERATINGCFM*)
  529.     INLINE PASCAL $203C, $C, $3A, $AAA3;
  530.     (*$END*)
  531. PROCEDURE CountImageDescriptionExtensionType*(VAR desc: ImageDescription; idType: LONGINT; VAR count: LONGINT): Types.OSErr;
  532.     (*$IF NOT GENERATINGCFM*)
  533.     INLINE PASCAL $203C, $C, $3B, $AAA3;
  534.     (*$END*)
  535. PROCEDURE GetNextImageDescriptionExtensionType*(VAR desc: ImageDescription; VAR idType: LONGINT): Types.OSErr;
  536.     (*$IF NOT GENERATINGCFM*)
  537.     INLINE PASCAL $203C, $8, $3C, $AAA3;
  538.     (*$END*)
  539. PROCEDURE FindCodec*(cType: CodecType; specCodec: CodecComponent; VAR compressor: CompressorComponent; VAR decompressor: DecompressorComponent): Types.OSErr;
  540.     (*$IF NOT GENERATINGCFM*)
  541.     INLINE PASCAL $7023, $AAA3;
  542.     (*$END*)
  543. PROCEDURE CompressPicture*(srcPicture: Quickdraw.PicHandle; dstPicture: Quickdraw.PicHandle; quality: CodecQ; cType: CodecType): Types.OSErr;
  544.     (*$IF NOT GENERATINGCFM*)
  545.     INLINE PASCAL $7024, $AAA3;
  546.     (*$END*)
  547. PROCEDURE FCompressPicture*(srcPicture: Quickdraw.PicHandle; dstPicture: Quickdraw.PicHandle; colorDepth: INTEGER; clut: Quickdraw.CTabHandle; quality: CodecQ; doDither: INTEGER; compressAgain: INTEGER; progressProc: ICMProgressProcRecordPtr; cType: CodecType; codec: CompressorComponent): Types.OSErr;
  548.     (*$IF NOT GENERATINGCFM*)
  549.     INLINE PASCAL $7025, $AAA3;
  550.     (*$END*)
  551. PROCEDURE CompressPictureFile*(srcRefNum: INTEGER; dstRefNum: INTEGER; quality: CodecQ; cType: CodecType): Types.OSErr;
  552.     (*$IF NOT GENERATINGCFM*)
  553.     INLINE PASCAL $7026, $AAA3;
  554.     (*$END*)
  555. PROCEDURE FCompressPictureFile*(srcRefNum: INTEGER; dstRefNum: INTEGER; colorDepth: INTEGER; clut: Quickdraw.CTabHandle; quality: CodecQ; doDither: INTEGER; compressAgain: INTEGER; progressProc: ICMProgressProcRecordPtr; cType: CodecType; codec: CompressorComponent): Types.OSErr;
  556.     (*$IF NOT GENERATINGCFM*)
  557.     INLINE PASCAL $7027, $AAA3;
  558.     (*$END*)
  559. PROCEDURE GetPictureFileHeader*(refNum: INTEGER; VAR frame: Types.Rect; VAR header: Quickdraw.OpenCPicParams): Types.OSErr;
  560.     (*$IF NOT GENERATINGCFM*)
  561.     INLINE PASCAL $7028, $AAA3;
  562.     (*$END*)
  563. PROCEDURE DrawPictureFile*(refNum: INTEGER; (*CONST*)VAR frame: Types.Rect; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  564.     (*$IF NOT GENERATINGCFM*)
  565.     INLINE PASCAL $7029, $AAA3;
  566.     (*$END*)
  567. PROCEDURE DrawTrimmedPicture*(srcPicture: Quickdraw.PicHandle; (*CONST*)VAR frame: Types.Rect; trimMask: Quickdraw.RgnHandle; doDither: INTEGER; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  568.     (*$IF NOT GENERATINGCFM*)
  569.     INLINE PASCAL $702E, $AAA3;
  570.     (*$END*)
  571. PROCEDURE DrawTrimmedPictureFile*(srcRefnum: INTEGER; (*CONST*)VAR frame: Types.Rect; trimMask: Quickdraw.RgnHandle; doDither: INTEGER; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  572.     (*$IF NOT GENERATINGCFM*)
  573.     INLINE PASCAL $702F, $AAA3;
  574.     (*$END*)
  575. PROCEDURE MakeThumbnailFromPicture*(picture: Quickdraw.PicHandle; colorDepth: INTEGER; thumbnail: Quickdraw.PicHandle; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  576.     (*$IF NOT GENERATINGCFM*)
  577.     INLINE PASCAL $702A, $AAA3;
  578.     (*$END*)
  579. PROCEDURE MakeThumbnailFromPictureFile*(refNum: INTEGER; colorDepth: INTEGER; thumbnail: Quickdraw.PicHandle; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  580.     (*$IF NOT GENERATINGCFM*)
  581.     INLINE PASCAL $702B, $AAA3;
  582.     (*$END*)
  583. PROCEDURE MakeThumbnailFromPixMap*(src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; colorDepth: INTEGER; thumbnail: Quickdraw.PicHandle; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  584.     (*$IF NOT GENERATINGCFM*)
  585.     INLINE PASCAL $702C, $AAA3;
  586.     (*$END*)
  587. PROCEDURE TrimImage*(desc: ImageDescriptionHandle; inData: Types.Ptr; inBufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; outData: Types.Ptr; outBufferSize: LONGINT; flushProc: ICMFlushProcRecordPtr; VAR trimRect: Types.Rect; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  588.     (*$IF NOT GENERATINGCFM*)
  589.     INLINE PASCAL $702D, $AAA3;
  590.     (*$END*)
  591. PROCEDURE ConvertImage*(srcDD: ImageDescriptionHandle; srcData: Types.Ptr; colorDepth: INTEGER; clut: Quickdraw.CTabHandle; accuracy: CodecQ; quality: CodecQ; cType: CodecType; codec: CodecComponent; dstDD: ImageDescriptionHandle; dstData: Types.Ptr): Types.OSErr;
  592.     (*$IF NOT GENERATINGCFM*)
  593.     INLINE PASCAL $7030, $AAA3;
  594.     (*$END*)
  595. PROCEDURE GetCompressedPixMapInfo*(pix: Quickdraw.PixMapPtr; VAR desc: ImageDescriptionHandle; VAR data: Types.Ptr; VAR bufferSize: LONGINT; VAR dataProc: ICMDataProcRecord; VAR progressProc: ICMProgressProcRecord): Types.OSErr;
  596.     (*$IF NOT GENERATINGCFM*)
  597.     INLINE PASCAL $7037, $AAA3;
  598.     (*$END*)
  599. PROCEDURE SetCompressedPixMapInfo*(pix: Quickdraw.PixMapPtr; desc: ImageDescriptionHandle; data: Types.Ptr; bufferSize: LONGINT; dataProc: ICMDataProcRecordPtr; progressProc: ICMProgressProcRecordPtr): Types.OSErr;
  600.     (*$IF NOT GENERATINGCFM*)
  601.     INLINE PASCAL $7038, $AAA3;
  602.     (*$END*)
  603. PROCEDURE StdPix*(src: Quickdraw.PixMapPtr; (*CONST*)VAR srcRect: Types.Rect; matrix: MatrixRecordPtr; mode: INTEGER; mask: Quickdraw.RgnHandle; matte: Quickdraw.PixMapPtr; (*CONST*)VAR matteRect: Types.Rect; flags: INTEGER);
  604.     (*$IF NOT GENERATINGCFM*)
  605.     INLINE PASCAL $700C, $AAA3;
  606.     (*$END*)
  607. PROCEDURE TransformRgn*(matrix: MatrixRecordPtr; rgn: Quickdraw.RgnHandle): Types.OSErr;
  608.     (*$IF NOT GENERATINGCFM*)
  609.     INLINE PASCAL $7039, $AAA3;
  610.     (*$END*)
  611. (***********
  612.     preview stuff
  613. ***********)
  614. PROCEDURE SFGetFilePreview*(where: Types.Point; prompt: Types.ConstStr255Param; fileFilter: StandardFile.FileFilterUPP; numTypes: INTEGER; typeList: StandardFile.ConstSFTypeListPtr; dlgHook: StandardFile.DlgHookUPP; VAR reply: StandardFile.SFReply);
  615.     (*$IF NOT GENERATINGCFM*)
  616.     INLINE PASCAL $7041, $AAA3;
  617.     (*$END*)
  618. PROCEDURE SFPGetFilePreview*(where: Types.Point; prompt: Types.ConstStr255Param; fileFilter: StandardFile.FileFilterUPP; numTypes: INTEGER; typeList: StandardFile.ConstSFTypeListPtr; dlgHook: StandardFile.DlgHookUPP; VAR reply: StandardFile.SFReply; dlgID: INTEGER; filterProc: Dialogs.ModalFilterUPP);
  619.     (*$IF NOT GENERATINGCFM*)
  620.     INLINE PASCAL $7042, $AAA3;
  621.     (*$END*)
  622. PROCEDURE StandardGetFilePreview*(fileFilter: StandardFile.FileFilterUPP; numTypes: INTEGER; typeList: StandardFile.ConstSFTypeListPtr; VAR reply: StandardFile.StandardFileReply);
  623.     (*$IF NOT GENERATINGCFM*)
  624.     INLINE PASCAL $7043, $AAA3;
  625.     (*$END*)
  626. PROCEDURE CustomGetFilePreview*(fileFilter: StandardFile.FileFilterYDUPP; numTypes: INTEGER; typeList: StandardFile.ConstSFTypeListPtr; VAR reply: StandardFile.StandardFileReply; dlgID: INTEGER; where: Types.Point; dlgHook: StandardFile.DlgHookYDUPP; filterProc: StandardFile.ModalFilterYDUPP; activeList: StandardFile.ActivationOrderListPtr; activateProc: StandardFile.ActivateYDUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr);
  627.     (*$IF NOT GENERATINGCFM*)
  628.     INLINE PASCAL $7044, $AAA3;
  629.     (*$END*)
  630. PROCEDURE MakeFilePreview*(resRefNum: INTEGER; progress: ICMProgressProcRecordPtr): Types.OSErr;
  631.     (*$IF NOT GENERATINGCFM*)
  632.     INLINE PASCAL $7045, $AAA3;
  633.     (*$END*)
  634. PROCEDURE AddFilePreview*(resRefNum: INTEGER; previewType: Types.OSType; previewData: Types.Handle): Types.OSErr;
  635.     (*$IF NOT GENERATINGCFM*)
  636.     INLINE PASCAL $7046, $AAA3;
  637.     (*$END*)
  638.  
  639. CONST
  640.     sfpItemPreviewAreaUser*        = 11;
  641.     sfpItemPreviewStaticText*    = 12;
  642.     sfpItemPreviewDividerUser*    = 13;
  643.     sfpItemCreatePreviewButton*    = 14;
  644.     sfpItemShowPreviewButton*    = 15;
  645.  
  646.  
  647. TYPE
  648.     PreviewResourceRecord* = RECORD
  649.         modDate*:                LONGINT;
  650.         version*:                INTEGER;
  651.         resType*:                Types.OSType;
  652.         resID*:                    INTEGER;
  653.     END;
  654.  
  655.     PreviewResourcePtr* = POINTER TO PreviewResourceRecord;
  656.     PreviewResource* = HANDLE TO PreviewResourceRecord (*ΔΔ POINTER TO PreviewResourcePtr*);
  657.  
  658.  
  659. PROCEDURE AlignScreenRect*(VAR rp: Types.Rect; alignmentProc: ICMAlignmentProcRecordPtr);
  660.     (*$IF NOT GENERATINGCFM*)
  661.     INLINE PASCAL $203C, $8, $4C, $AAA3;
  662.     (*$END*)
  663. PROCEDURE AlignWindow*(wp: Quickdraw.WindowPtr; front: BOOLEAN; (*CONST*)VAR alignmentRect: Types.Rect; alignmentProc: ICMAlignmentProcRecordPtr);
  664.     (*$IF NOT GENERATINGCFM*)
  665.     INLINE PASCAL $203C, $E, $4D, $AAA3;
  666.     (*$END*)
  667. PROCEDURE DragAlignedWindow*(wp: Quickdraw.WindowPtr; startPt: Types.Point; VAR boundsRect: Types.Rect; VAR alignmentRect: Types.Rect; alignmentProc: ICMAlignmentProcRecordPtr);
  668.     (*$IF NOT GENERATINGCFM*)
  669.     INLINE PASCAL $203C, $14, $4E, $AAA3;
  670.     (*$END*)
  671. PROCEDURE DragAlignedGrayRgn*(theRgn: Quickdraw.RgnHandle; startPt: Types.Point; VAR boundsRect: Types.Rect; VAR slopRect: Types.Rect; axis: INTEGER; actionProc: Types.UniversalProcPtr; VAR alignmentRect: Types.Rect; alignmentProc: ICMAlignmentProcRecordPtr): LONGINT;
  672.     (*$IF NOT GENERATINGCFM*)
  673.     INLINE PASCAL $203C, $1E, $4F, $AAA3;
  674.     (*$END*)
  675. PROCEDURE SetCSequenceDataRateParams*(seqID: ImageSequence; params: DataRateParamsPtr): Types.OSErr;
  676.     (*$IF NOT GENERATINGCFM*)
  677.     INLINE PASCAL $203C, $8, $50, $AAA3;
  678.     (*$END*)
  679. PROCEDURE SetCSequenceFrameNumber*(seqID: ImageSequence; frameNumber: LONGINT): Types.OSErr;
  680.     (*$IF NOT GENERATINGCFM*)
  681.     INLINE PASCAL $203C, $8, $51, $AAA3;
  682.     (*$END*)
  683. PROCEDURE NewImageGWorld*(VAR gworld: QDOffscreen.GWorldPtr; idh: ImageDescriptionHandle; flags: QDOffscreen.GWorldFlags): Quickdraw.QDErr;
  684.     (*$IF NOT GENERATINGCFM*)
  685.     INLINE PASCAL $203C, $C, $52, $AAA3;
  686.     (*$END*)
  687. PROCEDURE GetCSequenceDataRateParams*(seqID: ImageSequence; params: DataRateParamsPtr): Types.OSErr;
  688.     (*$IF NOT GENERATINGCFM*)
  689.     INLINE PASCAL $203C, $8, $53, $AAA3;
  690.     (*$END*)
  691. PROCEDURE GetCSequenceFrameNumber*(seqID: ImageSequence; VAR frameNumber: LONGINT): Types.OSErr;
  692.     (*$IF NOT GENERATINGCFM*)
  693.     INLINE PASCAL $203C, $8, $54, $AAA3;
  694.     (*$END*)
  695. PROCEDURE GetBestDeviceRect*(VAR gdh: Quickdraw.GDHandle; VAR rp: Types.Rect): Types.OSErr;
  696.     (*$IF NOT GENERATINGCFM*)
  697.     INLINE PASCAL $203C, $8, $55, $AAA3;
  698.     (*$END*)
  699. PROCEDURE SetSequenceProgressProc*(seqID: ImageSequence; VAR progressProc: ICMProgressProcRecord): Types.OSErr;
  700.     (*$IF NOT GENERATINGCFM*)
  701.     INLINE PASCAL $203C, $8, $56, $AAA3;
  702.     (*$END*)
  703. PROCEDURE GDHasScale*(gdh: Quickdraw.GDHandle; depth: INTEGER; VAR scale: Types.Fixed): Types.OSErr;
  704.     (*$IF NOT GENERATINGCFM*)
  705.     INLINE PASCAL $203C, $A, $5A, $AAA3;
  706.     (*$END*)
  707. PROCEDURE GDGetScale*(gdh: Quickdraw.GDHandle; VAR scale: Types.Fixed; VAR flags: INTEGER): Types.OSErr;
  708.     (*$IF NOT GENERATINGCFM*)
  709.     INLINE PASCAL $203C, $C, $5B, $AAA3;
  710.     (*$END*)
  711. PROCEDURE GDSetScale*(gdh: Quickdraw.GDHandle; scale: Types.Fixed; flags: INTEGER): Types.OSErr;
  712.     (*$IF NOT GENERATINGCFM*)
  713.     INLINE PASCAL $203C, $A, $5C, $AAA3;
  714.     (*$END*)
  715. PROCEDURE ICMShieldSequenceCursor*(seqID: ImageSequence): Types.OSErr;
  716.     (*$IF NOT GENERATINGCFM*)
  717.     INLINE PASCAL $203C, $4, $62, $AAA3;
  718.     (*$END*)
  719. PROCEDURE ICMDecompressComplete*(seqID: ImageSequence; err: Types.OSErr; flag: INTEGER; completionRtn: ICMCompletionProcRecordPtr);
  720.     (*$IF NOT GENERATINGCFM*)
  721.     INLINE PASCAL $203C, $C, $63, $AAA3;
  722.     (*$END*)
  723. PROCEDURE SetDSequenceTimeCode*(seqID: ImageSequence; timeCodeFormat: (*ΔΔUNIVΔΔ*) Types.Ptr; timeCodeTime: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  724.     (*$IF NOT GENERATINGCFM*)
  725.     INLINE PASCAL $203C, $C, $64, $AAA3;
  726.     (*$END*)
  727.  
  728. CONST
  729.     identityMatrixType*            = $00;                            (* result if matrix is identity *)
  730.     translateMatrixType*            = $01;                            (* result if matrix translates *)
  731.     scaleMatrixType*                = $02;                            (* result if matrix scales *)
  732.     scaleTranslateMatrixType*    = $03;                            (* result if matrix scales and translates *)
  733.     linearMatrixType*            = $04;                            (* result if matrix is general 2 x 2 *)
  734.     linearTranslateMatrixType*    = $05;                            (* result if matrix is general 2 x 2 and translates *)
  735.     perspectiveMatrixType*        = $06;                            (* result if matrix is general 3 x 3 *)
  736.  
  737.     
  738. TYPE
  739.     MatrixFlags* = INTEGER;
  740.  
  741.  
  742. PROCEDURE GetMatrixType*((*CONST*)VAR m: MatrixRecord): INTEGER;
  743.     (*$IF NOT GENERATINGCFM*)
  744.     INLINE PASCAL $7014, $ABC2;
  745.     (*$END*)
  746. PROCEDURE CopyMatrix*((*CONST*)VAR m1: MatrixRecord; VAR m2: MatrixRecord);
  747.     (*$IF NOT GENERATINGCFM*)
  748.     INLINE PASCAL $7020, $ABC2;
  749.     (*$END*)
  750. PROCEDURE EqualMatrix*((*CONST*)VAR m1: MatrixRecord; (*CONST*)VAR m2: MatrixRecord): BOOLEAN;
  751.     (*$IF NOT GENERATINGCFM*)
  752.     INLINE PASCAL $7021, $ABC2;
  753.     (*$END*)
  754. PROCEDURE SetIdentityMatrix*(VAR matrix: MatrixRecord);
  755.     (*$IF NOT GENERATINGCFM*)
  756.     INLINE PASCAL $7015, $ABC2;
  757.     (*$END*)
  758. PROCEDURE TranslateMatrix*(VAR m: MatrixRecord; deltaH: Types.Fixed; deltaV: Types.Fixed);
  759.     (*$IF NOT GENERATINGCFM*)
  760.     INLINE PASCAL $7019, $ABC2;
  761.     (*$END*)
  762. PROCEDURE RotateMatrix*(VAR m: MatrixRecord; degrees: Types.Fixed; aboutX: Types.Fixed; aboutY: Types.Fixed);
  763.     (*$IF NOT GENERATINGCFM*)
  764.     INLINE PASCAL $7016, $ABC2;
  765.     (*$END*)
  766. PROCEDURE ScaleMatrix*(VAR m: MatrixRecord; scaleX: Types.Fixed; scaleY: Types.Fixed; aboutX: Types.Fixed; aboutY: Types.Fixed);
  767.     (*$IF NOT GENERATINGCFM*)
  768.     INLINE PASCAL $7017, $ABC2;
  769.     (*$END*)
  770. PROCEDURE SkewMatrix*(VAR m: MatrixRecord; skewX: Types.Fixed; skewY: Types.Fixed; aboutX: Types.Fixed; aboutY: Types.Fixed);
  771.     (*$IF NOT GENERATINGCFM*)
  772.     INLINE PASCAL $7018, $ABC2;
  773.     (*$END*)
  774. PROCEDURE TransformFixedPoints*((*CONST*)VAR m: MatrixRecord; VAR fpt: FixedPoint; count: LONGINT): Types.OSErr;
  775.     (*$IF NOT GENERATINGCFM*)
  776.     INLINE PASCAL $7022, $ABC2;
  777.     (*$END*)
  778. PROCEDURE TransformPoints*((*CONST*)VAR mp: MatrixRecord; VAR pt1: Types.Point; count: LONGINT): Types.OSErr;
  779.     (*$IF NOT GENERATINGCFM*)
  780.     INLINE PASCAL $7023, $ABC2;
  781.     (*$END*)
  782. PROCEDURE TransformFixedRect*((*CONST*)VAR m: MatrixRecord; VAR fr: FixedRect; VAR fpp: FixedPoint): BOOLEAN;
  783.     (*$IF NOT GENERATINGCFM*)
  784.     INLINE PASCAL $7024, $ABC2;
  785.     (*$END*)
  786. PROCEDURE TransformRect*((*CONST*)VAR m: MatrixRecord; VAR r: Types.Rect; VAR fpp: FixedPoint): BOOLEAN;
  787.     (*$IF NOT GENERATINGCFM*)
  788.     INLINE PASCAL $7025, $ABC2;
  789.     (*$END*)
  790. PROCEDURE InverseMatrix*((*CONST*)VAR m: MatrixRecord; VAR im: MatrixRecord): BOOLEAN;
  791.     (*$IF NOT GENERATINGCFM*)
  792.     INLINE PASCAL $701C, $ABC2;
  793.     (*$END*)
  794. PROCEDURE ConcatMatrix*((*CONST*)VAR a: MatrixRecord; VAR b: MatrixRecord);
  795.     (*$IF NOT GENERATINGCFM*)
  796.     INLINE PASCAL $701B, $ABC2;
  797.     (*$END*)
  798. PROCEDURE RectMatrix*(VAR matrix: MatrixRecord; (*CONST*)VAR srcRect: Types.Rect; (*CONST*)VAR dstRect: Types.Rect);
  799.     (*$IF NOT GENERATINGCFM*)
  800.     INLINE PASCAL $701E, $ABC2;
  801.     (*$END*)
  802. PROCEDURE MapMatrix*(VAR matrix: MatrixRecord; (*CONST*)VAR fromRect: Types.Rect; (*CONST*)VAR toRect: Types.Rect);
  803.     (*$IF NOT GENERATINGCFM*)
  804.     INLINE PASCAL $701D, $ABC2;
  805.     (*$END*)
  806.  
  807. (* $ALIGN RESET*)
  808. (* $POP*)
  809.  
  810.  END ImageCompression.
  811.